package com.taobao.api.request;

import com.taobao.api.internal.mapping.ApiField;
import com.taobao.api.TaobaoObject;
import java.util.Map;

import com.taobao.api.ApiRuleException;
import com.taobao.api.BaseTaobaoRequest;
import com.taobao.api.internal.util.TaobaoHashMap;
import com.taobao.api.internal.util.json.JSONWriter;
import com.taobao.api.response.PlaceStoreModifyResponse;

/**
 * TOP API: taobao.place.store.modify request
 * 
 * @author top auto create
 * @since 1.0, 2018.11.23
 */
public class PlaceStoreModifyRequest extends BaseTaobaoRequest<PlaceStoreModifyResponse> {
	
	

	/** 
	* 门店创建入参
	 */
	private String storeUpdate;

	public void setStoreUpdate(String storeUpdate) {
		this.storeUpdate = storeUpdate;
	}

	public void setStoreUpdate(StoreUpdateTopDto storeUpdate) {
		this.storeUpdate = new JSONWriter(false,true).write(storeUpdate);
	}

	public String getStoreUpdate() {
		return this.storeUpdate;
	}

	public String getApiMethodName() {
		return "taobao.place.store.modify";
	}

	public Map<String, String> getTextParams() {		
		TaobaoHashMap txtParams = new TaobaoHashMap();
		txtParams.put("store_update", this.storeUpdate);
		if(this.udfParams != null) {
			txtParams.putAll(this.udfParams);
		}
		return txtParams;
	}

	public Class<PlaceStoreModifyResponse> getResponseClass() {
		return PlaceStoreModifyResponse.class;
	}

	public void check() throws ApiRuleException {
	}
	
	/**
 * 门店地址
 *
 * @author top auto create
 * @since 1.0, null
 */
public static class StoreAdressDto extends TaobaoObject {

	private static final long serialVersionUID = 6454943696145644244L;

	/**
		 * 区
		 */
		@ApiField("area")
		private String area;
		/**
		 * 城市
		 */
		@ApiField("city")
		private String city;
		/**
		 * 详细地址
		 */
		@ApiField("detail_address")
		private String detailAddress;
		/**
		 * 经度
		 */
		@ApiField("pos_x")
		private String posX;
		/**
		 * 维度
		 */
		@ApiField("pos_y")
		private String posY;
		/**
		 * 省份
		 */
		@ApiField("province")
		private String province;
		/**
		 * 街道
		 */
		@ApiField("town")
		private String town;
	

	public String getArea() {
			return this.area;
		}
		public void setArea(String area) {
			this.area = area;
		}
		public String getCity() {
			return this.city;
		}
		public void setCity(String city) {
			this.city = city;
		}
		public String getDetailAddress() {
			return this.detailAddress;
		}
		public void setDetailAddress(String detailAddress) {
			this.detailAddress = detailAddress;
		}
		public String getPosX() {
			return this.posX;
		}
		public void setPosX(String posX) {
			this.posX = posX;
		}
		public String getPosY() {
			return this.posY;
		}
		public void setPosY(String posY) {
			this.posY = posY;
		}
		public String getProvince() {
			return this.province;
		}
		public void setProvince(String province) {
			this.province = province;
		}
		public String getTown() {
			return this.town;
		}
		public void setTown(String town) {
			this.town = town;
		}

}

	/**
 * 门店信息
 *
 * @author top auto create
 * @since 1.0, null
 */
public static class StoreKeeperDto extends TaobaoObject {

	private static final long serialVersionUID = 6642136666521817718L;

	/**
		 * 传真
		 */
		@ApiField("fax")
		private String fax;
		/**
		 * 移动电话
		 */
		@ApiField("mobile")
		private String mobile;
		/**
		 * 门店联系人
		 */
		@ApiField("name")
		private String name;
		/**
		 * 电话
		 */
		@ApiField("tel")
		private String tel;
		/**
		 * 邮编
		 */
		@ApiField("zip_code")
		private String zipCode;
	

	public String getFax() {
			return this.fax;
		}
		public void setFax(String fax) {
			this.fax = fax;
		}
		public String getMobile() {
			return this.mobile;
		}
		public void setMobile(String mobile) {
			this.mobile = mobile;
		}
		public String getName() {
			return this.name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getTel() {
			return this.tel;
		}
		public void setTel(String tel) {
			this.tel = tel;
		}
		public String getZipCode() {
			return this.zipCode;
		}
		public void setZipCode(String zipCode) {
			this.zipCode = zipCode;
		}

}

	/**
 * 门店创建入参
 *
 * @author top auto create
 * @since 1.0, null
 */
public static class StoreUpdateTopDto extends TaobaoObject {

	private static final long serialVersionUID = 3258535488434523338L;

	/**
		 * 备注
		 */
		@ApiField("description")
		private String description;
		/**
		 * 门店结束营业时间
		 */
		@ApiField("end_time")
		private String endTime;
		/**
		 * 门店主类目
		 */
		@ApiField("main_category")
		private Long mainCategory;
		/**
		 * 门店主名
		 */
		@ApiField("name")
		private String name;
		/**
		 * 门店外部编码
		 */
		@ApiField("outer_code")
		private String outerCode;
		/**
		 * 店铺id
		 */
		@ApiField("shop_id")
		private Long shopId;
		/**
		 * 门店开始营业时间
		 */
		@ApiField("start_time")
		private String startTime;
		/**
		 * 门店状态，枚举值。NORMAL：正常。CLOSE：关店。HOLD: 暂停营业
		 */
		@ApiField("status")
		private String status;
		/**
		 * 门店地址
		 */
		@ApiField("store_adress")
		private StoreAdressDto storeAdress;
		/**
		 * 门店id
		 */
		@ApiField("store_id")
		private Long storeId;
		/**
		 * 门店信息
		 */
		@ApiField("store_keeper")
		private StoreKeeperDto storeKeeper;
		/**
		 * 门店类型，枚举值。NORMAL：普通门店。暂时统一使用这个值
		 */
		@ApiField("store_type")
		private String storeType;
		/**
		 * 分店名称
		 */
		@ApiField("sub_name")
		private String subName;
	

	public String getDescription() {
			return this.description;
		}
		public void setDescription(String description) {
			this.description = description;
		}
		public String getEndTime() {
			return this.endTime;
		}
		public void setEndTime(String endTime) {
			this.endTime = endTime;
		}
		public Long getMainCategory() {
			return this.mainCategory;
		}
		public void setMainCategory(Long mainCategory) {
			this.mainCategory = mainCategory;
		}
		public String getName() {
			return this.name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getOuterCode() {
			return this.outerCode;
		}
		public void setOuterCode(String outerCode) {
			this.outerCode = outerCode;
		}
		public Long getShopId() {
			return this.shopId;
		}
		public void setShopId(Long shopId) {
			this.shopId = shopId;
		}
		public String getStartTime() {
			return this.startTime;
		}
		public void setStartTime(String startTime) {
			this.startTime = startTime;
		}
		public String getStatus() {
			return this.status;
		}
		public void setStatus(String status) {
			this.status = status;
		}
		public StoreAdressDto getStoreAdress() {
			return this.storeAdress;
		}
		public void setStoreAdress(StoreAdressDto storeAdress) {
			this.storeAdress = storeAdress;
		}
		public Long getStoreId() {
			return this.storeId;
		}
		public void setStoreId(Long storeId) {
			this.storeId = storeId;
		}
		public StoreKeeperDto getStoreKeeper() {
			return this.storeKeeper;
		}
		public void setStoreKeeper(StoreKeeperDto storeKeeper) {
			this.storeKeeper = storeKeeper;
		}
		public String getStoreType() {
			return this.storeType;
		}
		public void setStoreType(String storeType) {
			this.storeType = storeType;
		}
		public String getSubName() {
			return this.subName;
		}
		public void setSubName(String subName) {
			this.subName = subName;
		}

}


}